package com.hl.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.core.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.hl.domain.CouponActivityRelation;
import com.hl.mapper.CouponActivityMapper;
import com.hl.domain.CouponActivity;
import com.hl.service.ICouponActivityService;

/**
 * 券活动信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
@Service
public class CouponActivityServiceImpl implements ICouponActivityService 
{
    @Autowired
    private CouponActivityMapper couponActivityMapper;

    /**
     * 查询券活动信息
     * 
     * @param activityId 券活动信息主键
     * @return 券活动信息
     */
    @Override
    public CouponActivity selectCouponActivityByActivityId(Integer activityId)
    {
        return couponActivityMapper.selectCouponActivityByActivityId(activityId);
    }

    /**
     * 查询券活动信息列表
     * 
     * @param couponActivity 券活动信息
     * @return 券活动信息
     */
    @Override
    public List<CouponActivity> selectCouponActivityList(CouponActivity couponActivity)
    {
        return couponActivityMapper.selectCouponActivityList(couponActivity);
    }

    /**
     * 新增券活动信息
     * 
     * @param couponActivity 券活动信息
     * @return 结果
     */
    @Transactional
    @Override
    public int insertCouponActivity(CouponActivity couponActivity)
    {
        int rows = couponActivityMapper.insertCouponActivity(couponActivity);
        insertCouponActivityRelation(couponActivity);
        return rows;
    }

    /**
     * 修改券活动信息
     * 
     * @param couponActivity 券活动信息
     * @return 结果
     */
    @Transactional
    @Override
    public int updateCouponActivity(CouponActivity couponActivity)
    {
        couponActivityMapper.deleteCouponActivityRelationByActivityId(couponActivity.getActivityId());
        insertCouponActivityRelation(couponActivity);
        return couponActivityMapper.updateCouponActivity(couponActivity);
    }

    /**
     * 批量删除券活动信息
     * 
     * @param activityIds 需要删除的券活动信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteCouponActivityByActivityIds(Integer[] activityIds)
    {
        couponActivityMapper.deleteCouponActivityRelationByActivityIds(activityIds);
        return couponActivityMapper.deleteCouponActivityByActivityIds(activityIds);
    }

    /**
     * 删除券活动信息信息
     * 
     * @param activityId 券活动信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteCouponActivityByActivityId(Integer activityId)
    {
        couponActivityMapper.deleteCouponActivityRelationByActivityId(activityId);
        return couponActivityMapper.deleteCouponActivityByActivityId(activityId);
    }

    /**
     * 新增券活动与券的关联信息
     * 
     * @param couponActivity 券活动信息对象
     */
    public void insertCouponActivityRelation(CouponActivity couponActivity)
    {
        List<CouponActivityRelation> couponActivityRelationList = couponActivity.getCouponActivityRelationList();
        Integer activityId = couponActivity.getActivityId();
        if (StringUtils.isNotNull(couponActivityRelationList))
        {
            List<CouponActivityRelation> list = new ArrayList<CouponActivityRelation>();
            for (CouponActivityRelation couponActivityRelation : couponActivityRelationList)
            {
                couponActivityRelation.setActivityId(activityId);
                list.add(couponActivityRelation);
            }
            if (list.size() > 0)
            {
                couponActivityMapper.batchCouponActivityRelation(list);
            }
        }
    }
}
